package ar.com.age.distribuidora.service.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import ar.com.age.distribuidora.dao.EstadoChequeDao;
import ar.com.age.distribuidora.dao.ChequeDao;
import ar.com.age.distribuidora.dominio.Cheque;
import ar.com.age.distribuidora.dominio.EstadoCheque;
import ar.com.age.distribuidora.service.ChequeService;

public class ChequeServiceImpl implements ChequeService {

	private EstadoChequeDao estadoChequeDao;
	
	private ChequeDao chequeDao;
	
	@Autowired(required = true)
	public void setEstadoChequeDao(EstadoChequeDao estadoChequeDao) {
		this.estadoChequeDao = estadoChequeDao;
	}
    
    @Autowired(required = true)
	public void setChequeDao(ChequeDao chequeDao) {
		this.chequeDao = chequeDao;
	}
    
    // EstadoCheque
    @Override
	public void crearOEditarEstadoCheque(EstadoCheque estadoCheque) {
		
    	estadoChequeDao.saveOrUpdate(estadoCheque);		
	}

	@Override
	public List<EstadoCheque> buscarTodosEstadoCheque() {

		return estadoChequeDao.getAll();
	}
	
	@Override
	public void eliminarEstadoCheque(EstadoCheque estadoCheque) {
		
		estadoChequeDao.physicalDelete(estadoCheque);
	}
	
	@Override
	public List<EstadoCheque> buscarEstadoCheque(String estado) {

		return estadoChequeDao.find(estado);
	}

	// Cheque
    @Override
	public void crearOEditarCheque(Cheque cheque) {
		
    	chequeDao.saveOrUpdate(cheque);		
	}

	@Override
	public List<Cheque> buscarTodosCheque() {

		return chequeDao.getAll();
	}
	
	@Override
	public void eliminarCheque(Cheque cheque) {
		
		chequeDao.physicalDelete(cheque);
	}
	
	@Override
	public List<Cheque> buscarCheque(String nombre, String apellido, String banco, String sucursal, String cuenta, Date desde, Date hasta, Double monto, String estado) {

		return chequeDao.find(nombre, apellido, banco, sucursal, cuenta, desde, hasta, monto, estado);
	}
	
	@Override
	public EstadoCheque retornarEstadoCheque(String estadoNuevo) {

		return estadoChequeDao.find(estadoNuevo).get(0);
	}
}
